home *** CD-ROM | disk | FTP | other *** search
- *:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- *:::: BMMENU.prg
- *:::: Startprogramm für BM-Menüsystem
- *:::: (c) 1990 by B. Matthias
- *:::: Alle Rechte bei Systemberatung B. Matthias
- *:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
- # include data.hdr
- # include database.hdr
- # include date.hdr
- # include error.hdr
- # include fileio.hdr
- # include io.hdr
- # include keys.hdr
- # include string.hdr
- # include system.hdr
- # include JDstr.hdr
- # include JDfil.hdr
- vardef && Variablendeklaration
- uint HOWMANY && Wieviel Files gefunden
- char(12) FNAME[64] && Filenamen
- ulong FSIZE[64] && Filegroesse
- char(8) FDATE[64] && Filedatum
- char(6) FTIME[64] && Filezeit
- char(6) FATTR[64] && Fileattribut
- logical ANYOTHERS && Nochmehr Files
- int(1) OPTION=1 && Menüoption
- uint I && Zähler
- uint IDX
- uint BONNY
- logical OK=.T. && OK-Abfrage
- byte COL_NO && Farbcode
- char(30) M_VAR
- char(255) M_FBBS && Puffer für FILES.BBS
- char(1) M_TRENN && Trennzeichen
- char(255) M_HPFAD[50] && Pfade zum Hatchen
- char(20) M_HNAME[50] && Hatchname
- file M_BBS && Datei FILES.BBS
- file M_CFG && Datei AUTOHTC.CFG
- int(2) M_AHATCH && Anzahl Areas zum Hatchen
- char(50) M_DESC && File-Beschreibung
- char(8) M_DATE && File-Datum
- char M_COMMAND && Hatch-Kommandozeile
- uint CDIR
- char OVERCOME && DOS Parameter
- char OVERGOT && Übernommener Parameter
- enddef
-
- *
- *-------------------------------------------------------------------------------
- * Prozedur: Fehlermeldung anzeigen und Ende
- *
-
- Procedure ERROR_PROC
- clear
- ? str(__errcode,4,0)+" "+e_message()
- quit
- endpro
-
- *
- *-------------------------------------------------------------------------------
- * Prozedur: Startbildschirm anzeigen
- *
-
- Procedure ShowHeader
- clear
- set color to "B/BG"
- @ 0, 0 say " BM-Hatch v1.1ß (c) 1990 by B. Matthias - Automatic hatch of files "+dtoc(today())+" "
- @ 24, 0 say " ----- You find me at Fidonet 2:245/60 ----- "
- set color to "W/B"
- @ 1, 0 clear to 23,79
- @ 1, 0 say ""
- endpro
-
-
- *
- *-------------------------------------------------------------------------------
- * Funktion: Control-File lesen
- * Rückgabe: keine
- *
- function logical READCFG
- if .not. f_open(M_CFG, "AUTOHTC.CFG", &F_READ)
- return .F.
- endif
- M_AHATCH=0
- do while .not. f_eof(M_CFG) .and. M_AHATCH<50
- OK=f_getln(M_CFG, M_HPFAD[M_AHATCH])
- M_HNAME[M_AHATCH]=alltrim(substr(M_HPFAD[M_AHATCH],at(chr(32),M_HPFAD[M_AHATCH]),20))
- M_HPFAD[M_AHATCH]=substr(M_HPFAD[M_AHATCH],1,at(chr(32),M_HPFAD[M_AHATCH])+1)
- M_AHATCH=M_AHATCH+1
- enddo
- f_close(M_CFG)
- return .T.
- endpro
-
-
- *
- *-------------------------------------------------------------------------------
- * Funktion: Files.Bbs einlesen
- * Rückgabe: keine
- *
- function logical READBBS
- if .not. f_open(M_BBS, rtrim(M_HPFAD[I])+"\FILES.BBS", &F_READ)
- return .F.
- endif
- do while .not. f_eof(M_BBS) .and. IDX<250
- OK=f_getln(M_BBS, M_FBBS)
- if trim(substr(M_FBBS,1,12))=rtrim(FNAME[IDX])
- M_DESC=rtrim(substr(M_FBBS,at(M_TRENN,M_FBBS)+2,50))
- f_close(M_BBS)
- return .T.
- endif
- enddo
- f_close(M_BBS)
- return .F.
- endpro
-
-
- *
- *-------------------------------------------------------------------------------
- * Prozedur: Fileverzeichnis lesen
- *
- Procedure HATCH
- CDIR=1
- repeat
- HOWMANY=adir(rtrim(M_HPFAD[I])+"\*.*", FNAME[], FSIZE[], FDATE[], FTIME[], FATTR[], "RH", CDIR, .T., ANYOTHERS)
- CDIR=CDIR+64
- for IDX=0 to HOWMANY-1
- if ctod(FDATE[IDX])>=ctod(M_DATE) .and. FNAME[IDX]<>"FILES.BBS" .and. FNAME[IDX]<>"FILES.BAK"
- do ShowHeader
- if READBBS()
- ? " Hatching: "+rtrim(FNAME[IDX])
- BONNY=filerename(rtrim(M_HPFAD[I])+"\FILES.BBS",rtrim(M_HPFAD[I])+"\FILES.BMS")
- if BONNY=0
- ? " Renamed : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
- M_COMMAND="HATCH /r0 /a"+rtrim(M_HNAME[I])+" /f"+rtrim(FNAME[IDX])+" /ON /d"+rtrim(M_DESC)
- run M_COMMAND
- BONNY=filedelete(rtrim(M_HPFAD[I])+"\FILES.BBS")
- if BONNY=0
- ? " Deleted : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
- else
- ? " Not deleted : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
- ? " with errorlevel : "+str(BONNY,2,0)
- endif
- BONNY=filerename(rtrim(M_HPFAD[I])+"\FILES.BMS",rtrim(M_HPFAD[I])+"\FILES.BBS")
- if BONNY=0
- ? " Renamed : "+rtrim(M_HPFAD[I])+"\FILES.BMS"
- else
- ? " Not renamed : "+rtrim(M_HPFAD[I])+"\FILES.BMS"
- ? " with errorlevel : "+str(BONNY,2,0)+chr(7)
- endif
- else
- ? " Not renamed : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
- ? " with errorlevel : "+str(BONNY,2,0)+chr(7)
- endif
- else
- ? " "+rtrim(M_HPFAD[I])+"\FILES.BBS not found !!!"+chr(7)
- ? " File not found : "+FNAME[IDX]
- ? " File NOT hatched"
- endif
- endif
- inkey()
- if lastkey()=&K_ESC
- quit
- endif
- next
- until .not. anyothers
- endpro
-
-
- *
- *-------------------------------------------------------------------------------
- * Prozedur: Hauptprogramm
- *
-
- procedure FORCE_MAIN
- parameters char OVERCOME
-
- OVERGOT=upper(rtrim(ltrim(OVERCOME)))
-
- on error do ERROR_PROC
- do scrn_direct
-
- set delimiters on
- set date german
- set status off
- set scoreboard off
-
- do ShowHeader
-
- if .not. ReadCfg() && Wenn kein CFG-File
- ?
- ? "Fehler: Datei AUTOHTC.CFG wurde nicht gefunden !!"
- ?
- quit && Abbruch
- endif
- M_DATE=fgetdate("AUTOHTC.CFG") && Letztes Hatch-Datum
- M_TRENN=trim(M_HPFAD[0]) && Trennzeichen für Downloadcounter
-
- if OVERGOT="" && Wenn keine Parameter beim Aufruf
- I=1
- do while I<M_AHATCH && Aus allen Areas hatchen
- do HATCH && Hatchen
- I=I+1
- enddo
- ok=fsetdate("AUTOHTC.CFG",dtoc(today()))
- else
- M_HNAME[1]=alltrim(substr(OVERGOT,at(chr(32),OVERGOT),20))
- M_HPFAD[1]=substr(OVERGOT,1,at(chr(32),OVERGOT)-1)
-
- if M_HNAME[1]="" .or. M_HPFAD[1]=""
- ?
- ? "Fehler: Falsche Pfadangabe !!"
- ?
- ? "Beispiel: AUTOHTC <DOS-Pfad> <TagName>"
- ? " AUTOHTC e:\sdsra SDSRA"
- ?
- quit
- endif
-
- M_DATE="01.01.80" && Hatchdatum
- I=1
- do HATCH && Hatchen
- endif
-
- set color to "W/N"
- clear
- endpro
-
-